<?php

class Transaccion{
	public $Id;
	public $IdUsuario;
	public $ETicket;
	public $Pagado;
	public $Monto;
	public $TipoCambio;
	public $FechaTransaccion;
	public $FechaPago;
	public $NroOrden;
	public $PedidoSAP;
	
	
	public $XMLEnvio;
	public $XMLRespuesta;
	
	public $TipoPago;
	public $Destinatario;
	public $Ruc;
	public $Voucher;
	public $PagadoConfirmado;
	
	function __construct($row = null){
		if($row != null){
		$this->Id = $row["Id"];
		$this->IdUsuario = $row["IdUsuario"];
		$this->ETicket = $row["ETicket"];
		
		$this->Pagado = $row["Pagado"];
		$this->Monto = $row["Monto"];
		$this->NroOrden = $row["NroOrden"];
		$this->TipoCambio = $row["TipoCambio"];
		$this->FechaTransaccion = $row["FechaTransaccion"];
		$this->FechaPago = $row["FechaPago"];
		$this->Voucher = $row["Voucher"];
		
		$this->XMLEnvio = $row["XMLEnvio"];
		$this->XMLRespuesta = $row["XMLRespuesta"];
		$this->PedidoSAP = $row["PedidoSAP"];
		$this->TipoPago = $row["TipoPago"];
		$this->PagadoConfirmado = $row["PagadoConfirmado"];		
		}
	}
	
	static function Listar(){
		global $dbh;
		
		$sql = 'SELECT 
				Id,
				IdUsuario,
				NroOrden,
				ETicket,
				Pagado,
				Monto,
				TipoCambio,
				FechaTransaccion,
				FechaPago,
				XMLEnvio,
				XMLRespuesta,
				TipoPago,
				PagadoConfirmado
				FROM transaccion';
				
		$lista = array();		 
		foreach($dbh->query($sql) as $row) {
			$lista[] = new Transaccion($row);
		}
		
		return $lista;
	}
	
	
	public function Registrar(){
		global $dbh;
		
		if($this->Id){
			$sql = 'UPDATE `transaccion` SET 
				IdUsuario = \''.$this->IdUsuario.'\',
				ETicket = \''.$this->ETicket.'\',
				Pagado = \''.$this->Pagado.'\',
				Monto = \''.$this->Monto.'\',
				TipoCambio = \''.$this->TipoCambio.'\',
				FechaTransaccion = \''.$this->FechaTransaccion.'\',				
				FechaPago = \''.$this->FechaPago.'\',
				NroOrden = \''.$this->NroOrden.'\',
				XMLEnvio = \''.$this->XMLEnvio.'\',
				XMLRespuesta = \''.$this->XMLRespuesta.'\',
				PedidoSAP = \''.$this->PedidoSAP.'\',
				
				TipoPago = \''.$this->TipoPago.'\',
				Destinatario = \''.$this->Destinatario.'\',
				Ruc = \''.$this->Ruc.'\',
				Voucher = \''.$this->Voucher.'\',
				PagadoConfirmado = \''.$this->PagadoConfirmado.'\'
				WHERE
					Id = \''.$this->Id.'\'
			';
		}else{		
			$sql = 'INSERT INTO  `transaccion` (
					`Id` ,
					`IdUsuario` ,
					`ETicket` ,
					`Pagado` ,
					`Monto` ,
					`TipoCambio` ,
					`FechaTransaccion` ,
					`FechaPago`,			
					`XMLEnvio`,
					`XMLRespuesta`,
					`NroOrden`,
					PedidoSAP,
					
					`TipoPago`,
					`Destinatario`,
					`Ruc`,
					`Voucher`,
					`PagadoConfirmado`
					)
					VALUES (
					NULL ,
					\''.$this->IdUsuario.'\',
					\''.$this->ETicket.'\',
					\''.$this->Pagado.'\',
					\''.$this->Monto.'\',
					\''.$this->TipoCambio.'\',
					\''.$this->FechaTransaccion.'\',
					\''.$this->FechaPago.'\',
					
					\''.$this->XMLEnvio.'\',
					\''.$this->XMLRespuesta.'\',
					\''.$this->NroOrden.'\',
					\''.$this->PedidoSAP.'\',
					
					\''.$this->TipoPago.'\',
					\''.$this->Destinatario.'\',
					\''.$this->Ruc.'\',
					\''.$this->Voucher.'\',		
					\''.$this->PagadoConfirmado.'\'		
					)';
		}
		

		
		$temp_q_id = $dbh->prepare($sql);
		if (!$temp_q_id) {
				echo "\nPDO::errorInfo():\n";		
		}
		$temp_q_id->execute();		
		
		if(!$this->Id)
			$this->Id = $dbh->lastInsertId();		
		}	
	
	static function Obtener($id){
		global $dbh;
		
		$sql = 'SELECT
					Id,
					IdUsuario,
					ETicket,
					Pagado,
					Monto,
					TipoCambio,
					FechaTransaccion,
					FechaPago,
					`XMLEnvio`,
					`XMLRespuesta`,
					`NroOrden`,
					PedidoSAP,
					TipoPago,
					PagadoConfirmado
				FROM `transaccion` WHERE `Id` = '.$id;
		
		$item = NULL;
		foreach($dbh->query($sql) as $row){
			$item = new Transaccion($row);	
		}		
		return $item;		
	}
	
	static function ObtenerPorETicket($ETicket){
		global $dbh;
		
		$sql = 'SELECT
					Id,
					IdUsuario,
					ETicket,
					Pagado,
					Monto,
					TipoCambio,
					FechaTransaccion,
					FechaPago,
					`XMLEnvio`,
					`XMLRespuesta`,
					`NroOrden`,
					PedidoSAP,
					TipoPago,
					PagadoConfirmado
				FROM `transaccion` WHERE `ETicket` = "'.$ETicket.'"';
				
		$item = NULL;
		foreach($dbh->query($sql) as $row){
			$item = new Transaccion($row);	
		}		
		return $item;		
	}

	static function ObtenerTransaccionExitosa($id){

		global $dbh;
		
		$sql = 'SELECT
					Id,
					IdUsuario,
					ETicket,
					Pagado,
					Monto,
					TipoCambio,
					TipoPago,
					FechaTransaccion,
					FechaPago,
					`XMLEnvio`,
					`XMLRespuesta`,
					`NroOrden`,					
					PedidoSAP,
					Voucher,
					TipoPago,
					PagadoConfirmado
				FROM `transaccion` WHERE `IdUsuario` = "'.$id.'" and Pagado = 1';
				
		$item = NULL;
		foreach($dbh->query($sql) as $row){
			$item = new Transaccion($row);	
		}		
		
		return $item;	
	}	
}
?>